/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javabahia;


import javabahia.bean.Address;
import javabahia.bean.Person;
import javabahia.bean.Sex;
import javabahia.dao.PersonDAO;

/**
 *
 * @author otavio
 */
public class SimpleExample {

    private static PersonDAO dao = new PersonDAO();

    public static void main(String[] arg) {
        exempleInsert();
        exempleInsertOnlyPerson();
        exempleInsertOverwrite();
        list();
        insertExample2();
        retrieve();
        //remove();
    }

    private static void exempleInsert() {
        System.out.println("Insert exemple");
        Person person = new Person();
        person.setYear(10);
        person.setName("Duke  ");
        person.setSex(Sex.MALE);
        person.setId(1l);
        Address endereco = new Address();
        
        endereco.setCity("Salvador");
        endereco.setStreet("Rua do programador Poliglota");
        person.setAddress(endereco);
        dao.create(person);

    }

    private static void exempleInsertOverwrite() {
        System.out.println("Insert and orverwrite");
        Person pessoa = new Person();
        pessoa.setYear(10);
        pessoa.setName("Duke Java");
        pessoa.setSex(Sex.MALE);
        pessoa.setId(1l);
        Address endereco = new Address();
        endereco.setCity("Salvador");
        endereco.setStreet("Rua do programador Poliglota");
        pessoa.setAddress(endereco);
        
        dao.create(pessoa);
    }

    private static void exempleInsertOnlyPerson() {
        System.out.println("Insert only Person");
        Person pessoa = new Person();
        pessoa.setYear(10);
        pessoa.setName("JavaBahia  ");
        pessoa.setSex(Sex.MALE);
        pessoa.setId(2l);

        // The column is made  in demand
           dao.create(pessoa);
    }

    private static void remove() {



        dao.remove(1l);

    }

    private static void retrieve() {
        Person pessoa = dao.retrieve(new Long(1));
        System.out.println("The valeu remove " + pessoa);
        pessoa = dao.retrieve(2l);
        System.out.println("O name retreive is " + pessoa.getName());
    }

    private static void list() {
        System.out.print("List ");
        for (Person pessoa : dao.listAll()) {

            System.out.println("Name: " + pessoa.getName());
        }


    }

    private static void insertExample2() {
        System.out.println("insert 2");
        Person pessoa = new Person();
        pessoa.setYear(10);
        pessoa.setName("Exemplo Sobrescrito ");
        pessoa.setSex(Sex.MALE);
        pessoa.setId(1l);
        Address endereco = new Address();
        endereco.setCity("Salvador");
        endereco.setStreet("Rua do programador Poliglota");
        pessoa.setAddress(endereco);


    }
}
